
/**
 * 该方法返回一个延迟执行的方法如果在delay时间内再次调用则计时器归零只有计时器时间到了，方法才会执行
 * @param func
 * @param delay
 * @returns {function(...[*]): void}
 */
export function debounce(func, delay) {
  let timer = null;
  return function (...args) {
    if (timer) {
      timer = clearTimeout(timer);
    }
    timer = setTimeout(() => {
      func.apply(args);
    }, delay)
  };
}
